home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / perl5 / Mail / Field / AddrList.pm next >
Encoding:
Text File  |  2008-07-29  |  1.4 KB  |  69 lines

  1. # Copyrights 1995-2008 by Mark Overmeer <perl@overmeer.net>.
  2. #  For other contributors see ChangeLog.
  3. # See the manual pages for details on the licensing terms.
  4. # Pod stripped from pm file by OODoc 1.05.
  5. use strict;
  6.  
  7. package Mail::Field::AddrList;
  8. use vars '$VERSION';
  9. $VERSION = '2.04';
  10.  
  11. use base 'Mail::Field';
  12.  
  13. use Carp;
  14. use Mail::Address;
  15.  
  16.  
  17. my $x = bless [];
  18. $x->register('To');
  19. $x->register('From');
  20. $x->register('Cc');
  21. $x->register('Reply-To');
  22. $x->register('Sender');
  23.  
  24. sub create(@)
  25. {   my ($self, %arg)  = @_;
  26.     $self->{AddrList} = {};
  27.  
  28.     while(my ($e, $n) = each %arg)
  29.     {   $self->{AddrList}{$e} = Mail::Address->new($n, $e);
  30.     }
  31.  
  32.     $self;
  33. }
  34.  
  35. sub parse($)
  36. {   my ($self, $string) = @_;
  37.     foreach my $a (Mail::Address->parse($string))
  38.     {   my $e = $a->address;
  39.     $self->{AddrList}{$e} = $a;
  40.     }
  41.     $self;
  42. }
  43.  
  44. sub stringify()
  45. {   my $self = shift;
  46.     join(", ", map { $_->format } values %{$self->{AddrList}});
  47. }
  48.  
  49.  
  50. sub addresses { keys %{shift->{AddrList}} }
  51.  
  52.  
  53. # someone forgot to implement a method to return the Mail::Address
  54. # objects.  Added in 2.00; a pitty that the name addresses() is already
  55. # given :(  That one should have been named emails()
  56. sub addr_list { values %{shift->{AddrList}} }
  57.  
  58.  
  59. sub names { map { $_->name } values %{shift->{AddrList}} }
  60.  
  61.  
  62. sub set_address($$)
  63. {   my ($self, $email, $name) = @_;
  64.     $self->{AddrList}{$email} = Mail::Address->new($name, $email);
  65.     $self;
  66. }
  67.  
  68. 1;
  69.